Golang Job: Software Engineer (FT)

Job added on

Company

Hitachi Vantara Corporation
Portugal

Location

Remote Position
(From Everywhere/No Office Location)

Job type

Full-Time

Golang Job Details

Software Engineer - IIoT

This role is a hands-on Staff Software Engineer to develop IoT applications platforms, machine learning and solutions. The ideal candidate would be a self-starting, energetic individual, not afraid to question
assumptions and be imaginative. 10 or more years of experience as an engineer with a drive for
innovation by developing prototypes, and influencing product roadmap. This person should have a
passion for exploring and learning new technologies in a fast-paced environment. Participate in product requirement discussions with Product Management, Product Owner, Engineering Lead, and UX.

Responsibilities:
  • Capture system-level requirements by brainstorming with Sr. Architects, Data Scientists, Businesses & Product Managers.
  • Identify the scope of the work, provide an initial estimate and justify the estimate with facts.
  • Engage in technical discussions; participate in technical designs and present technical ideas through whiteboarding.
  • Work closely with your peers and keep engaging in a fast pace technical design and development team.
  • Maintain code quality through best practices, unit testing and code quality automation.
  • Demonstrate the ability to make informed technology choices after due diligence and impact assessment.
  • Understand the whole product, its modules and the interrelationship between them while being an expert in the assigned component or module.
  • Help in designing interfaces and information exchange between modules.
  • Possess advanced domain knowledge and show great customer focus. Expert in processes/methodologies and Skilled in build, release & deployment processes (CI/CD).
  • Be an expert in core data structures as well as algorithms and can implement them using the language of choice.
  • Be responsible for providing technical leadership and defining, developing, and evolving software in a fast-paced and agile development environment using the latest software development technologies and infrastructure.
  • Guide developers with either planning and execution and/or design architecture using agile methodologies such as SCRUM.

Qualifications:
  • 10+ years of experience in the software industry, of which at least 3 years are in IoT platform and application development; industrial application experiences are a plus.
  • Possess strong experience in the design and development of full-stack web applications with emphasis on Micro-Services architecture. Knowledge of 12-factor application and proficiency in applying common design patterns. Strong experience in containers, Kubernetes, RESTful services.
  • Experiences with the machine learning platform and framework, e.g. PyTorch, MLFlow; and libraries, e.g. sci-kit-learn.
  • Deep understanding of data structures, data modelling and software architecture.
  • Experiences using IaaS and/or PaaS (AWS, Google Cloud, Azure, vCloud Air); and virtualization environments (ESXi, Xen, Hyper-V, Docker, etc.).
  • Proficient in one or more of the following languages: GoLang, C/C++, Python, R, Java, Javascript.
  • Experience with backend technology, overall application lifecycle and performance optimization is also a definite plus.
  • Experience/exposure in React, AngularJS or Vue; HTML5, CSS, D3, Loopback, REST/JSON.
  • Strong knowledge of Object-Oriented Analysis and Design, Software Design Patterns.
  • Database experience must be familiar with RDBMS and NoSQL databases.
  • Knowledge or experiences with industrial protocols are a plus.
  • Experience in the testing framework - Mock frameworks.
  • Hands-on in design and code reviews.
  • Experiences with automation/configuration management using Jenkins, Puppet, Chef or equivalent technologies; and software configuration tools; build script and CI/CD.
  • Architect, Design, Develop, Implement and Deploy enterprise-level, high availability applications.
  • Expert understanding of multi-threaded priority-based systems.
  • Expert in breaking down problems and estimating time for development tasks.
  • Hands-on experience in Secure-SDLC, SAST, and DAST methodologies and tools.
  • Good communication and interpersonal skills.